记忆分层:让Agent像人一样思考
是的,我把第七章 **《构建你的智能体框架》**跳过去了。
理由也不复杂:
- 对我这种外行读者来说,先把理论弄明白更重要。
- 理论掌握了,至少能跟同事朋友“聊得像那么回事”;比起苦哈哈手搓 Agent,最后还被各位高手围观点评,要友好得多。
- 上面那条是玩笑。但认真讲:第七章对非工程向读者的边际收益不算高。我更愿意把时间花在研究那些已经存在的轮子——各类现成框架。它们也许不够“企业级完美”,但对个人项目来说,确实能省掉大量工程琐事。
- 当然,爱动手的同学还是值得读第七章:它能很直观地拆掉“框架的神秘面纱”,让你理解这些框架到底封装了什么、为什么这么封装。
第八章《记忆与检索》:我最喜欢的一章之一
第八章 **《记忆与检索》**是我很喜欢的话题,也是我在读 Hello-Agent 之前就相对熟悉的内容。
原因是:在看这本书之前,我折腾了一个多月微软的 TinyTroupe,想做一个“LLM 小人自己对话”的小玩法。折腾的过程中,我逐渐摸清了一个问题:
Agent 的记忆,到底应该怎么“像人一样”被组织起来?
先把向量数据库、图数据库、关系数据库、embedding、reranking 这些名词放一边。它们当然重要,但更多是“工具层”——负责帮你把记忆写进去、取出来、必要时整理一下。学是要学的,但这部分不是最核心的洞察。
真正让我觉得这章有价值的,是书里那张图(你马上要贴出来的那张)讲清楚了一件事:
记忆不是简单的“存聊天记录”,而是分层、分类型的拟人化组织。
这张图讲的其实是:记忆如何拟人化分层
1)短期记忆:对话的“工作台”
短期记忆最好理解。
比如你今天和一个人聊天,10 分钟前他说“刚从海外出差回来”,你还记得。10 分钟后他打了个哈欠,你就会顺口问一句:是不是时差还没倒过来?
你看,这就是短期记忆:保证对话的上下文连续性。
2)长期记忆:跨时间的人物设定
长期记忆也不难。
两个月前他吐槽过:海外出差很辛苦,当地环境很差。今天你们喝咖啡聊天,聊到你也要去那里出差——你不一定记得原话,但你大概率记得两点:他去过、他说过环境差。于是你会问:那边条件不好,我该怎么准备?
长期记忆的作用就是:让对话跨越时间,保持“这个人/这段关系”是连续的。
3)抽象知识:脱离具体经历的规则与常识
最有意思的是“抽象知识”。
它其实很像人脑里的“规则库”:你记得 1+1=2,但你不会去回忆自己到底在哪个下午、通过哪两个苹果学会了这个结论。
抽象知识关注的是:可复用的规律、稳定的偏好、可迁移的结论。它不依赖某一次对话原文存在。
4)多模态:我先略过
多模态我这里就不展开了,因为我个人对多模态兴趣一般,更关注纯文本场景。
有了“分层”,才轮到“存取”:工具是怎么派上用场的
当你接受了上面这套“拟人化分层”的记忆观,后面的工程实现就顺理成章了:
- 短期记忆:直接放内存,按轮次维护,比如最近 5 轮对话。
- 超出部分进入长期记忆:但长期记忆最好别原样存聊天记录,而是压缩、总结后再存(否则就是垃圾场)。
- 如果对话里沉淀出了抽象知识(规则、偏好、稳定事实),就应该抽取出来单独存,并且表达必须足够精简。
- 甚至我觉得:短期记忆也应该做一点语义级精简,否则上下文会膨胀得非常快。
至于“读取记忆”,一句话总结就是:
按需检索短期/长期/抽象知识,把它们拼进上下文,再丢给 LLM。
所以你会发现:这也是为什么 Hello-Agent 的第九章会紧接着讲 《上下文工程》。
我打算下一篇读书笔记就聊这个。
加载中...